ποΈGitΠ―ΡΠ°ποΈ
Node / meshtastic / Meshtastic-Android / files / specs / 20260520-153449-node-list-context-menu / data-model.md
specs/20260520-153449-node-list-context-menu/data-model.md bd2863243bab6eb213401d949839a2bc74dde7e2 (bd286324) Text, 2.28 KB
Data Model: Node List Context Menu Alignment
Entities
NodeContextMenu (UI Component State)
No new persistent data model entities are introduced by this feature. The context menu operates on the existing T383838Node model and uses existing capabilities/state.
βββββββββββββββββββββββββββββββββ¬ββββββββββ¬ββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β Field β Type β Source β Purpose β
βββββββββββββββββββββββββββββββββΌββββββββββΌββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββ€
β T383838node.isFavorite β Boolean β T383838Node model β Toggle favorite label β
β T383838node.isMuted β Boolean β T383838Node model β Toggle mute label β
β T383838node.isIgnored β Boolean β T383838Node model β Disable Message/TraceRoute/Favoriβ¦ β
β T383838node.capabilities.canMuteNode β Boolean β T383838Node.Capabilities β Conditionally show mute item β
β T383838node.num β Int β T383838Node model β Target for trace route + message β¦ β
β T383838node.user.long_name β String β T383838Node.User β Display name for trace route loggβ¦ β
βββββββββββββββββββββββββββββββββ΄ββββββββββ΄ββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββ
Menu Item Order (Canonical)
ββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββ¬ββββββββββββββββββ
β Position β Item β Condition β Enabled β
ββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββΌββββββββββββββββββ€
β 1 β Add to favorites / Remove from favorites β Always shown β T383838!node.isIgnored β
β 2 β Mute notifications / Unmute β T383838canMuteNode == true β Always β
β 3 β Message β Always shown β T383838!node.isIgnored β
β 4 β Trace Route β Always shown β T383838!node.isIgnored β
β 5 β Ignore / Remove from ignored β Always shown β Always β
β 6 β Remove β Always shown β T383838!node.isIgnored β
ββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββ΄ββββββββββββββββββ
Callback Interface Changes
T282828
T8b949e// NodeContextMenu composable parameters (additions in bold)
Tff7b72fun Td2a8ffNodeContextMenuTb4b4b4(
Te6edf3expandedTb4b4b4: Tffa657BooleanTb4b4b4,
Te6edf3nodeTb4b4b4: Te6edf3NodeTb4b4b4,
Te6edf3onFavoriteTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3onMuteTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3onMessageTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4, T8b949e// NEW
Te6edf3onTraceRouteTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4, T8b949e// NEW
Te6edf3onIgnoreTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3onRemoveTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3onDismissTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Tb4b4b4)
State Transitions
No state machine changes. Existing toggle behaviors (favorite, mute, ignore) are unchanged. New actions (Message, Trace Route) are fire-and-forget β they trigger navigation or a network request respectively.
Validation Rules
β’ Context menu MUST NOT appear for local node (T383838node.num == ourNode.num) β enforced at call site
β’ Message and Trace Route MUST be disabled when T383838node.isIgnored == true
β’ Mute item MUST be hidden (not disabled) when T383838node.capabilities.canMuteNode == false
β’ Menu MUST display items in exact canonical order regardless of node state
Served by rngit 1.5.0 - Generated in 0.04s